//
//  CZUserAccountTools.swift
//  Swift -- 微博
//
//  Created by sks on 16/6/27.
//  Copyright © 2016年 mohaha. All rights reserved.
//

import UIKit

class CZUserAccountTools: NSObject {
    
    //沙盒路径
   let path = (NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true).last! as NSString).stringByAppendingPathComponent("userAccount.archiver")
    
    //保存用户信息数据对象
    var userAccount :CZUserAccount?
    

    
    var isLogin:Bool {
        // 如果access_token 为nil 代表没有登录
        return accessToken != nil
    }
    
    var accessToken :String? {
      
        //代表没有登录
        if userAccount?.access_token == nil {
            return nil
        }else {
          
            //过期时间和当前时间作比较 如果是降序 代表没有过期
            if userAccount?.expires_Date?.compare(NSDate()) == NSComparisonResult.OrderedDescending {
                
                return userAccount?.access_token
            }else{
            
               return nil
            }
        }
    
    }
    
    //定义全局单例访问点 
    static let sharedTools :CZUserAccountTools = CZUserAccountTools()
    override init() {
        super.init()
        
        userAccount = getUserAccount()
    }
    
    //获取模型对象
    func getUserAccount() -> CZUserAccount? {
        
        //由于第一次获取对象的时候我们根本没有保存 所以系统返回给nil
        let result = NSKeyedUnarchiver.unarchiveObjectWithFile(path) as? CZUserAccount
    
        return result
    }
    
    //保存对象
    func saveUserAccount(userAccount :CZUserAccount) {
        
        //如果第一次调用单例 userAccount为nil 如果要使用它 需要在保存数据的时候 给单例属性赋值
        self.userAccount = userAccount
        NSKeyedArchiver.archiveRootObject(userAccount, toFile: path)
    }
    
   
    
    
    
    

}
